/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package DAO;

import Database.DBConnection;
import Database.PropertiesManager;
import Model.Endereco;
import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;

/**
 *
 * @author Maury
 */
public class EnderecoDAO {
    private static HashMap dados;
    
    static{
        try{
    dados = new PropertiesManager("sql.properties").readPropertiesFile();
        } catch (IOException ioe){
            System.out.println(ioe);
        }
    }  
               
    public static ArrayList<Endereco> pesquisarAll() throws SQLException, ClassNotFoundException, IOException{
        Connection conexao = DBConnection.getInstance();
        String sql = loadSQL("Select.Endereco");
        PreparedStatement pstmt = conexao.prepareStatement(sql);
        ResultSet rs = pstmt.executeQuery();
        ArrayList<Endereco> enderecos = new ArrayList<Endereco>();
        
        while(rs.next()){            
            int id_endereco = rs.getInt("ID_ENDERECO");
            String cidade = rs.getString("CIDADE");
            String rua = rs.getString("RUA");
            int numero = rs.getInt("NUMERO");
            
            Endereco end = new Endereco();
            end.setCidade(cidade);
            end.setId_endereco(id_endereco);
            end.setNumero(numero);
            end.setRua(rua);
            enderecos.add(end);
        }
        
        return enderecos;
    }
    
    public static Endereco pesquisarById(int id_endereco) throws SQLException, ClassNotFoundException, IOException{
        Connection conexao = DBConnection.getInstance();
        String sql = loadSQL("SelectById.Endereco");
        PreparedStatement pstmt = conexao.prepareStatement(sql);
        pstmt.setInt(1, id_endereco);
        ResultSet rs = pstmt.executeQuery();
        Endereco endereco = null;
        
        if(rs.next()){
            String cidade = rs.getString("CIDADE");
            String rua = rs.getString("RUA");
            int numero = rs.getInt("NUMERO");
            
            endereco = new Endereco();
            endereco.setCidade(cidade);
            endereco.setId_endereco(id_endereco);
            endereco.setNumero(numero);
            endereco.setRua(rua);
        }
        
        return endereco;
    }
    
    private static String loadSQL(String key){
        String sql=null;
        sql = (String) dados.get(key);
        return sql;
    }    
}
